package com.zf.validation.entity;

import com.zf.validation.contraint.Phone;
import jakarta.validation.constraints.Email;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Length;


/**
 * @author Zhou Feng
 */
@Getter
@Setter
public class UserInfo {
    /**
     * 错误信息的中：
     * ${validatedValue} 是固定写法，表示被校验字段的值。
     * {min} 中的min是 @Length 校验注解的一个属性，{min} 写法可以获取该属性的值
     */
    @Length(min = 5, message = "{password.short}")
    private String password;
    // // 同上，其中的固定值部分无法使用国际化
    // @Length(min = 5, message = "密码 ${validatedValue} 太短，至少应该是 {min} 位")
    // private String password;


    @Phone(regexp = "\\d{11}", message = "{phone.length}")
    private String phoneNumber;

    // 多个信息拼接，依然从文件中读取，可以正常使用国际化
    @Email(message = "{email.summary}")
    private String email;
    // 多个信息拼接，直接写死在message中，其中的固定值部分无法再使用国际化，{email.length} 用来获取国际化文件中的信息
    // @Email(message = "${validatedValue} {email.length} 并且 {email.pattern}")
    // private String email;

}
